﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;


using System.Data.OleDb;

namespace QuanLiHocSinh
{
    public partial class TiepNhanHocSinh : Form
    {
        OleDbConnection connect;
        public TiepNhanHocSinh()
        {
            InitializeComponent();



            //===========================================================================================


            connect = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=CSDL.mdb");

            if (connect != null)
            {
                connect.Open();

                //===========================
                string point = "select * from lop";
                OleDbCommand comman = new OleDbCommand(point, connect);

                OleDbDataReader reader;
                reader = comman.ExecuteReader();
                bool none = true;
                while (reader.Read())
                {

                    string lop = "";
                    lop += reader.GetString(0);
                    if (none)
                    {
                        comboBox2.Text = lop;
                        none = false;
                    }
                    comboBox2.Items.Add(lop);
                }
                string maso = "";
                string MS = "select * from DiaChiMS";
                comman = new OleDbCommand(MS, connect);

                reader = comman.ExecuteReader();
                while (reader.Read())
                {
                    maso += reader.GetString(0);
                }
                int mso = int.Parse(maso);
                mso++;
                textBox1.Text = mso.ToString();

                //===========================
            }
            else
            {
                MessageBox.Show("Không kết nối được với CSDL", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {

            string tuoi = textBox6.Text;


            if ((comboBox4.Text == "04") || (comboBox4.Text == "06") || (comboBox4.Text == "09") || (comboBox4.Text == "11"))
            {
                if (comboBox3.Text == "31")
                {
                    MessageBox.Show("Nhập ngày sinh không hợp lệ!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                    return;
                }

            }

            if (comboBox4.Text == "02")
            {
                if ((comboBox3.Text == "31") || (comboBox3.Text == "30") || (comboBox3.Text == "29"))
                {
                    MessageBox.Show("Nhập ngày sinh không hợp lệ!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                    return;
                }

            }



            if ((textBox2.Text == "") || (comboBox1.Text == "") || (comboBox3.Text == "") || (comboBox4.Text == "") || (textBox6.Text == "") || (textBox5.Text == "") || (textBox7.Text == "") || (comboBox2.Text == ""))
            {
                MessageBox.Show("Nhập thông tin không đầy đủ!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                return;
            }



            string ngaysinh = "";
            ngaysinh = ngaysinh + comboBox3.Text + "/" + comboBox4.Text + "/" + textBox6.Text;
            string lop = comboBox2.Text;
            if (xet_lop(lop))
            {

                if (xet_tuoi(tuoi))
                {
                    if ((comboBox1.Text == "Nam") || (comboBox1.Text == "Nữ"))
                    {
                        int slg_tt = 0;
                        int slg_rule = 0;
                        string slg = "select count(*) from hocsinh where Lop = '"+lop+"'";
                        OleDbCommand cm = new OleDbCommand(slg, connect);
                        OleDbDataReader rd = cm.ExecuteReader();
                        while (rd.Read())
                        {
                            slg_tt = rd.GetInt32(0);
                        }

                        slg = "select SiSoToiDa from rule";
                        cm = new OleDbCommand(slg, connect);
                        rd = cm.ExecuteReader();
                        while (rd.Read())
                        {
                            slg_rule = int.Parse(rd.GetString(0));
                        }
                        if (slg_tt < slg_rule)
                        {
                            string update = "insert into hocsinh(MaHS, HoTen, GioiTinh, NgaySinh, DiaChi, Lop, NamHoc) values('" + textBox1.Text + "', '" + textBox2.Text + "', '" + comboBox1.Text + "', '" + ngaysinh + "', '" + textBox5.Text + "', '" + comboBox2.Text + "', '" + textBox7.Text + "')";
                            OleDbCommand comman = new OleDbCommand(update, connect);

                            comman.ExecuteNonQuery();

                            MessageBox.Show("Tiếp nhận thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);

                            //========================================================

                            textBox2.Clear();
                            textBox5.Clear();
                            textBox6.Clear();
                            textBox7.Clear();





                            string del = "delete from DiaChiMS";
                            OleDbCommand dele = new OleDbCommand(del, connect);

                            dele.ExecuteNonQuery();

                            update = "insert into DiaChiMS(point) values('" + textBox1.Text + "')";
                            comman = new OleDbCommand(update, connect);

                            comman.ExecuteNonQuery();



                            OleDbDataReader reader;
                            string maso = "";
                            string MS = "select * from DiaChiMS";
                            comman = new OleDbCommand(MS, connect);

                            reader = comman.ExecuteReader();
                            while (reader.Read())
                            {
                                maso += reader.GetString(0);
                            }
                            int mso = int.Parse(maso);
                            mso++;
                            textBox1.Text = mso.ToString();
                            //========================================================
                        }
                        else
                        {
                            MessageBox.Show("Lớp đã đủ số lượng. Hãy chọn lớp khác!", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Nhập sai giới tính!", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);

                    }

                }
                else
                {
                    MessageBox.Show("Nhập sai tuổi hoặc tuổi không đúng qui định!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                }
            }
            else
            {
                MessageBox.Show("Nhập sai lớp!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
            }

        }



        bool xet_tuoi(String nam)
        {
            string nam_now = DateTime.Now.Year.ToString();
            int nhap = int.Parse(nam);
            int now = int.Parse(nam_now);
            if ((now - nhap >= 15) && (now - nhap <= 20))
            {
                return true;
            }
            return false;
        }


        bool xet_lop(string lop)
        {
            string point = "select * from lop";
            OleDbCommand comman = new OleDbCommand(point, connect);

            OleDbDataReader reader;
            reader = comman.ExecuteReader();

            while (reader.Read())
            {
                if (lop == reader.GetString(0))
                {
                    return true;
                    break;
                }
            }
            return false;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            QuiDinh qd = new QuiDinh();
            qd.ShowDialog();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}



